Jopi Remote Call
What is it?
JopiRemoteCall is a TypeScript library designed to do Remote Procedure Call, meaning the ability to call a function located in another application or on a server as if it were a local function.
Instead of doing:
const service = new MyService();
await service.uploadFile(myStream);
You do:
const server = useBrokerService("@MyServiceName");
await service.uploadFile(myStream);
Everything works as if you were simply instantiating a class. However, the executed code is located elsewhere. You don’t need to know this when using the service, you only use it as if it's a local class instance.
When to use Jopi Remote Call?
-
Quick starting a project. Jopi Remote Call is designed to be simple and enable the rapid creation of a client/server infrastructure, while making it easy to update this infrastructure without updating your client app (recompiling/deloy on clients phones). Starting a client/server project is simple, much simpler than using traditional technologies.
-
Real-time communications: get notified instantly. Unlike a traditional client/server relationship, here communications are bidirectional, and the server can instantly contact the client app (browser or another server). This capability allows building applications where users are instantly notified about changes that concern them.
-
Transferring large files: even in poor network conditions. Error correction mechanisms allow the transfer of large files, even when the network is of poor quality and keeps dropping or causing errors. Being on a train through the countryside and transferring large files is no problem. You won't have to keep restarting the transfer; it will continue as soon as the network returns.
-
Easily update and scale your server infrastructure. Jopi Remote Call includes a proxy mechanism designed to route messages to the right recipients, wherever they are. Initially, you start with a small server, but as needs evolve, you may want to distribute functionalities across multiple servers.
-
Without Jopi Remote Call: The major issue with a traditional architecture is that the client application must be updated to know it now needs to work with a different server. Update his address, update how to communicate with him and the internal logic of your application. 👎 Need to update installed applications.
-
With Jopi Remote Call: You don’t need any changes on the client application side! Changes are only made on the server side. 👍
No need to update installed applications.
-
What are the other benefits of this library?
-
Simple and effective security. The system was designed with security as a priority. JWT authentication (user authentication) and role-based permission management (who is authorized to call a function) are already included. Additionally, address obfuscation mechanisms make it nearly impossible for a bot scanning your web services to find server addresses.
URL sample >>> localhost:3000/65a9e437-7471-4942-91fd-f4fbb274f4c8
-
Handling network issues. Mechanisms are in place to automatically address network problems that may arise.
If the network is disconnected for a short period, the system will automatically attempt to resend messages as soon as the connection is restored. Otherwise, it will notify you of an issue and allow you to show a message for your user. -
Capable of handling high loads. The system is designed to minimize its memory footprint, meaning you can have more clients connected to your server simultaneously. Also an internal proxy allow to do load-balancing and detect which servers are down. You don't need to use an extra tool for load balancing.